From: Keir Fraser Date: Sat, 29 Dec 2007 17:52:34 +0000 (+0000) Subject: vtpm: Fix GetCapabilityOwner function X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14445^2~81 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=86d2ef9f49f45376fa6038159969e5f7a18ed4c0;p=xen.git vtpm: Fix GetCapabilityOwner function GetCapabilityOwner function's behavior is different from that of a real tpm device. By the difference, a TPM Manager in an HVM domain could not detect whether TPM device has an owner or not. Signed-off-by: Kouichi YASAKI --- diff --git a/tools/vtpm/tpm_emulator.patch b/tools/vtpm/tpm_emulator.patch index 8cd439f725..c34c6650ed 100644 --- a/tools/vtpm/tpm_emulator.patch +++ b/tools/vtpm/tpm_emulator.patch @@ -547,6 +547,21 @@ diff -uprN orig/tpm_emulator-0.4/README tpm_emulator/README Installation -------------------------------------------------------------------------- The compilation and installation process uses the build environment for +diff -uprN orig/tpm_emulator-0.4/tpm/tpm_capability.c tpm_emulator/tpm/tpm_capability.c +--- orig/tpm_emulator-0.4/tpm/tpm_capability.c 2006-06-23 19:37:07.000000000 +0900 ++++ tpm_emulator/tpm/tpm_capability.c 2007-12-28 22:50:19.000000000 +0900 +@@ -701,7 +701,10 @@ TPM_RESULT TPM_GetCapabilityOwner(TPM_VE + TPM_RESULT res; + + info("TPM_GetCapabilityOwner()"); +- ++ ++ if (!tpmData.permanent.flags.owned) { ++ return TPM_NOSRK; ++ } + /* Verify owner authorization */ + res = tpm_verify_auth(auth1, tpmData.permanent.data.ownerAuth, TPM_KH_OWNER); + if (res != TPM_SUCCESS) return res; diff -uprN orig/tpm_emulator-0.4/tpm/tpm_cmd_handler.c tpm_emulator/tpm/tpm_cmd_handler.c --- orig/tpm_emulator-0.4/tpm/tpm_cmd_handler.c 2006-06-23 19:37:07.000000000 +0900 +++ tpm_emulator/tpm/tpm_cmd_handler.c 2007-09-12 20:23:00.000000000 +0900